C++复习 位域

  1. 不可移植性
  2. 位域

不可移植性

  • 不可移植性:程序从一台机器转移到另一台机器时,通常需要重新编写该程序。

    比如算术类型的大小在不同机器上不一样

  • 相关概念

    位域

Volatile

链接指示:extern “C”

位域

//位域的声明形式是在成员名字之后紧跟一个冒号以及一个常量表达式,用于指定成员所占的二进制位数;
Bit mode: 2;    // mode 占 2 位

类可以将其(非静态)数据成员定义为位域(bit-field),在一个位域中含有一定数量的二进制位。当一个程序需要向其他程序或硬件设备传递二进制数据时,通常会用到位域。

  • 位域在内存中的布局是与机器有关的
  • 位域的类型必须是整型或枚举类型,因为带符号类型中的位域的行为将因具体实现而定
  • 取地址运算符(&)不能作用于位域,任何指针都无法指向类的位域

  • 如果类内的连续定义的位域占用空间在同一个整数的相邻位,那么将会提供压缩,具体与机器相关

  • 超过1位的位域通常使用内置的位运算符进行操作